package com.rytx.system.service.impl;

import java.util.List;

import com.rytx.system.domain.ysp.ArtOrder;
import com.rytx.system.service.IArtOrderService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.rytx.system.mapper.ArtTaxMapper;
import com.rytx.system.domain.ArtTax;
import com.rytx.system.service.IArtTaxService;
import org.springframework.transaction.annotation.Transactional;

/**
 * 发票管理Service业务层处理
 * 
 * @author rytx
 * @date 2024-09-02
 */
@Service
public class ArtTaxServiceImpl implements IArtTaxService 
{
    @Autowired
    private ArtTaxMapper artTaxMapper;
    @Autowired
    private IArtOrderService artOrderService;
    @Override
    @Transactional
    public int complete(ArtTax artTax) {
        String orderNo = artTax.getOrderNo();
        ArtOrder order = artOrderService.getOrderByOrderNo(orderNo);
        if(null == order){
            throw new RuntimeException("订单不存在");
        }
        Long id = artTax.getId();
        if(null == id){
            throw new RuntimeException("参数异常");
        }
       int i = artTaxMapper.complete(id);
       artOrderService.takComplete(orderNo);
       return i;
    }

    /**
     * 查询发票管理
     * 
     * @param id 发票管理主键
     * @return 发票管理
     */
    @Override
    public ArtTax selectArtTaxById(Long id)
    {
        return artTaxMapper.selectArtTaxById(id);
    }

    /**
     * 查询发票管理列表
     * 
     * @param artTax 发票管理
     * @return 发票管理
     */
    @Override
    public List<ArtTax> selectArtTaxList(ArtTax artTax)
    {
        return artTaxMapper.selectArtTaxList(artTax);
    }

    /**
     * 新增发票管理
     * 
     * @param artTax 发票管理
     * @return 结果
     */
    @Transactional
    @Override
    public int insertArtTax(ArtTax artTax)
    {
        ArtOrder order = new ArtOrder();
        order.setOrderNo(artTax.getOrderNo());
        order.setTakStatus(2l);
        artOrderService.updateByOrderNo(order);
        return artTaxMapper.insertArtTax(artTax);
    }

    /**
     * 修改发票管理
     * 
     * @param artTax 发票管理
     * @return 结果
     */
    @Override
    public int updateArtTax(ArtTax artTax)
    {
        return artTaxMapper.updateArtTax(artTax);
    }

    /**
     * 批量删除发票管理
     * 
     * @param ids 需要删除的发票管理主键
     * @return 结果
     */
    @Override
    public int deleteArtTaxByIds(Long[] ids)
    {
        return artTaxMapper.deleteArtTaxByIds(ids);
    }

    /**
     * 删除发票管理信息
     * 
     * @param id 发票管理主键
     * @return 结果
     */
    @Override
    public int deleteArtTaxById(Long id)
    {
        return artTaxMapper.deleteArtTaxById(id);
    }

    @Override
    public ArtTax getTaxByOrderno(String orderNo) {
        return artTaxMapper.getTaxByOrderno(orderNo);
    }
}
